import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;	//p ventana principal

import javax.swing.JDialog;	//p ventanita de msg inicial
import javax.swing.JLabel;
import javax.swing.WindowConstants;


public class BloqueMovil extends Canvas 
		implements KeyListener {

    private int xRectangulo = 100;
    private int yRectangulo = 100;
    private int anchoRectangulo = 100;
    private int altoRectangulo = 100;
    private int desplazam = 10;
    
    //me obliga a redefinirlo aunque no lo utilize
    //se que esta asociado a la implementacion de serialize
    //pero no estoy seguro por que se genera asi (si copy + paste)
    private static final long serialVersionUID = -4273648398171436938L;
    
    public BloqueMovil() {
    	addKeyListener( this );
    }

    public void keyTyped(KeyEvent evento) {
    	if (evento.getKeyChar() == ("c").charAt(0)) xRectangulo += desplazam;
    	if (evento.getKeyChar() == ("z").charAt(0)) xRectangulo -= desplazam;
    	if (evento.getKeyChar() == ("x").charAt(0)) yRectangulo += desplazam;
    	if (evento.getKeyChar() == ("s").charAt(0)) yRectangulo -= desplazam;
    	
    	repaint();
    }
    
    public void keyReleased( KeyEvent evento ) {

    	//me obliga a redefinirlo aunque no lo utilize
    	
    }
    
    public void keyPressed( KeyEvent evento ) {
    	
    	//me obliga a redefinirlo aunque no lo utilize
    	
    }
    
    public Dimension getPreferredSize()  {
        return new Dimension(500, 500);
    }

     public void paint(Graphics g) {
        g.setColor(Color.RED);
        g.fill3DRect(xRectangulo, yRectangulo, 
        		anchoRectangulo, altoRectangulo, false);
    }

    public static void main(String[] args) {
        JFrame v = new JFrame("Arrastrar Grafico");
        
        BloqueMovil c = new BloqueMovil();
        v.getContentPane().add(c);
        v.pack();
        v.setVisible(true);
        v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        JDialog vMsg = new JDialog();
        vMsg.pack();
        vMsg.setTitle("Dialogo Secundario");
        vMsg.getContentPane().add(new JLabel("Enfoca la ventana y " +
        		"muevete utilizando las siguientes teclas:\n\n" +
        		"z <=> izquierda\n" +
        		"c <=> derecha\n" +
        		"s <=> arriba\n" +
        		"x <=> abajo\n\n Suerte grupo!"));
        vMsg.pack();
        vMsg.setVisible(true);
        
        

    }
}